package com.cheejee.goodscenter.service;

import javax.validation.constraints.NotNull;

import org.springframework.validation.annotation.Validated;

import com.cheejee.goodscenter.module.entity.CategoryPropertiesTemplate;
import com.github.pagehelper.Page;

/**
 * @author CARRY
 * @Date 2020年10月26日下午4:18:51
 */
@Validated
public interface CategoryPropertiesTemplateService {

	/**
	 * 按指定条件获取属性模板,多个条件and相连。
	 *
	 * @param categoryPropertiesGroupId 属性分组id
	 * @param categoryId 分类id
	 * @param propertiesName 属性名称
	 * @param required 是否必填
	 * @param type 模板类型
	 * @param initial 首字母
	 * @param offset 分页位移量
	 * @param limit 每页内容数
	 * @return
	 */
	Page<CategoryPropertiesTemplate> queryCategoryPropertiesTemplate(Integer categoryPropertiesGroupId, Integer categoryId,
			String propertiesName, Boolean required, Byte type, String initial, int pageNum, int pageSize);

	/**
	 * 
	 *
	 * @param id
	 * @return
	 */
	CategoryPropertiesTemplate queryCategoryPropertiesTemplateById(@NotNull(message = "分类属性模板id不能为空") Integer id);

	/**
	 * 添加分类属性模板，如果需要添加不属于任何分组的属性模板，请把分组id设置为0
	 *
	 * @param propertiesTemplate
	 * @return
	 */
	int addCategoryPropertiesTemplate(CategoryPropertiesTemplate propertiesTemplate);

	/**
	 * 修改分类属性模板，模板如果被使用则不能修改属性名称
	 *
	 * @param propertiesTemplate
	 * @return
	 */
	int changeCategoryPropertiesTemplate(CategoryPropertiesTemplate propertiesTemplate);

	/**
	 * 删除分类属性模板
	 *
	 * @param id
	 * @return
	 */
	int deleteCategoryPropertiesTemplate(@NotNull(message = "删除的分类属性模板id不能为空") Integer... id);
}
